// pages/login/index.js
import { createStoreBindings } from 'mobx-miniprogram-bindings'
import store from '../../store/index.js'
import {codes,login} from "../../api/user"
Page({

  /**
   * 页面的初始数据
   */
  data: {
    mobile:null,
    errorMobile:null,
    code:null,
    codeError:null,
    show:true,
    timer:60,
    // start:false
  },

  mobileBlur(e) {
      this.setData({
        mobile:e.detail.value,
        errorMobile:e.detail.value?(/^(?:(?:\+|00)86)?1[3-9]\d{9}$/.test(e.detail.value)? '':"手机号格式有问题") :'请输入手机号'
      })
  },
  codeBlur(e) {
    this.setData({
      code:e.detail.value,
      codeError:e.detail.value?(/^[0-9]\d{5}$/.test(e.detail.value)? '':"验证码格式有问题") :"请输入验证码"
    })
  },
  async codes() {
    if(this.data.mobile && !this.data.errorMobile) {
      try {
        this.setData({
          show: false,
          // start:true
        })
        await codes(this.data.mobile)
        wx.showToast({
          title: '发送成功',
          icon: 'success',
        })
        const timer =  setInterval(()=>{
          this.setData({
            timer:this.data.timer - 1,
          })
          if(this.data.timer === 0) {
            clearInterval(timer)
            this.setData({
              show: true,
              timer:60
            })
          }
        },1000)
      } catch (error) {
        wx.showToast({
          title: '发送失败',
          icon: 'error',
        })
      }
    } else {
      this.setData({
        errorMobile: this.data.mobile?"手机号格式有问题":"请输入手机号"
      })
    }
  },
  async login(e) {
    if(this.data.mobile && !this.data.errorMobile && this.data.code && !this.data.codeError) {
      try {
        const res =  await login({mobile:this.data.mobile,code:this.data.code})
        this.getToken(res.data)
        console.log(res);
        wx.setStorageSync('token', res.data.token)
        wx.setStorageSync('refresh_token', res.data.refresh_token)
        console.log(wx.getStorageSync('token'));
        wx.showToast({
        title: '登录成功',
        icon: 'success',
      })

      wx.switchTab({
        url:"/pages/index/index"
      })
      } catch (error) {
        wx.showToast({
          title: '登录失败',
          icon: 'error',
        })
      }
    } else {
      this.setData({
        errorMobile: this.data.mobile?"手机号格式有问题":"请输入手机号",
        codeError: this.data.code?"验证码格式有问题":"请输入验证码"
      })
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad (options) {
    createStoreBindings(this, {
      store: store,
      fields: ['tokenData'],
      actions: ['getToken']
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage () {

  }
})